gusucode.com > 现代通信系统——使用MATLAB(+全部程序) > 现代通信系统——使用MATLAB(+全部程序)/现代通信系统——使用MATLAB(+全部程序)/Matlab 程序/Chapter4/Mse_dist.m
function [y,dist]=mse_dist(funfcn,a,tol,p1,p2,p3) %MSE_DIST Returns the mean-squared quantization error. % [Y,DIST]=MSE_DIST(FUNFCN,A,TOL,P1,P2,P3) % funfcn=The distribution function given % in an m-file. It can depend on up to three % parameters, p1,p2,p3. % a=the vector defining the boundaries of the % quantization regions. (Note: [a(1),a(length(a))] % is the support of funfcn.) % p1,p2,p3=parameters of funfcn. % tol=the relative error. args=[]; for n=1:nargin-3 args=[args,',p',int2str(n)]; end args=[args,')']; for i=1:length(a)-1 y(i)=eval(['centroid(funfcn,a(i),a(i+1),tol',args]); end dist=0; for i=1:length(a)-1 newfun = 'x_a2_fnct' ; dist=dist+eval(['quad(newfun,a(i),a(i+1),tol,[],funfcn,', num2str(y(i)), args]); end